GRÁFICOS¶

  • A continuación se presentan las imágenes y métricas de la red para todos los períodos de 5 años en que Chile aparece con programas de gobierno (Período 14 (1985 a 1989) al Período 21 (2020 a 2024))
  • La similaridad es según la correlación entre programas de gobierno
  • Se usó un umbral de correlaciones >= 0.80 para construir la red, identificar comunidades y pàra calcular las métricas de centralidad.
  • Para la identificación de comunidades también se consideró un umbral de 0.60.
  • Para poder comparar la visualización se presenta la m,isma información de dos maneras: La primera es de a pares de gráficos y la segunda es gráficos individuales.

Períodos¶

In [1]:
import pandas as pd
df_ventana_5 = pd.read_excel('data/Ventana_5.xlsx')
df_resultado = df_ventana_5.groupby('ventana')['agno'].agg(Desde='min', Hasta='max').reset_index()
df_resultado = df_resultado[df_resultado['ventana'] >= 14]
print(df_resultado.to_string(index=False))
 ventana  Desde  Hasta
      14   1985   1989
      15   1990   1994
      16   1995   1999
      17   2000   2004
      18   2005   2009
      19   2010   2014
      20   2015   2019
      21   2020   2023

Visualización De a pares¶

In [2]:
import os
from PIL import Image
import matplotlib.pyplot as plt
import pandas as pd

# Cargar el archivo Excel y preparar el DataFrame
df_ventana_5 = pd.read_excel('data/Ventana_5.xlsx')
df_resultado = df_ventana_5.groupby('ventana')['agno'].agg(Desde='min', Hasta='max').reset_index()
df_resultado = df_resultado[df_resultado['ventana'] >= 14]

# Convertir 'ventana' en índice para acceder fácilmente a los valores 'Desde' y 'Hasta'
df_resultado.set_index('ventana', inplace=True)

# Ruta del directorio 'assets' (un nivel arriba del directorio actual)
assets_dir = '../assets'

# Listado de los tipos de imágenes
tipos_imagenes = [
    'Red 0.8 ', 'Grado 0.8 ', 'Centralidades 0.8 ', 'Comunidades 0.8 ',
    'TopDegree 0.8 ', 'TopBetweenness 0.8 ', 'TopCloseness 0.8 ', 'Comunidades 0.6 '
]

# Números que van de 14 a 21 (ventanas que queremos graficar)
numeros = range(14, 22)

# Tamaño base de las figuras (ajustable según el número de imágenes)
width_per_col = 5  # Ancho por columna en pulgadas
height_per_row = 4  # Alto por fila en pulgadas

for tipo in tipos_imagenes:
    # Calcular el tamaño de la figura según el número de filas y columnas
    n_cols = 2  # Número de columnas (2 imágenes por fila)
    n_rows = (len(numeros) + 1) // n_cols  # Calcula el número de filas necesario
    figsize = (width_per_col * n_cols, height_per_row * n_rows)  # Tamaño de la figura
    
    # Crear una nueva figura para cada tipo de imagen con el tamaño calculado
    fig, axs = plt.subplots(n_rows, n_cols, figsize=figsize)
    fig.suptitle(tipo, fontsize=16)
    
    for i, num in enumerate(numeros):
        # Calcular la posición en la grilla
        row, col = divmod(i, n_cols)
        
        # Construir el nombre del archivo de imagen
        image_name = f"{tipo.split()[0]} {num} {tipo.split()[1]}.png"
        image_path = os.path.join(assets_dir, image_name)
        
        # Cargar la imagen y mostrarla en el subplot correspondiente
        img = Image.open(image_path)
        axs[row, col].imshow(img)
        axs[row, col].axis('off')
        
        # Obtener los valores 'Desde' y 'Hasta' para la ventana actual
        desde_hasta = f"{df_resultado.at[num, 'Desde']}-{df_resultado.at[num, 'Hasta']}"
        
        # Mostrar el título con 'ventana' y 'Desde-Hasta'
        axs[row, col].set_title(f"{num} ({desde_hasta})", fontsize=12)
    
    # Desactivar los ejes de las celdas vacías
    for j in range(len(numeros), n_rows * n_cols):
        row, col = divmod(j, n_cols)
        axs[row, col].axis('off')
    
    plt.tight_layout()
    plt.show()
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image

Gráficos de a uno¶

In [3]:
import os
from PIL import Image
import matplotlib.pyplot as plt
import pandas as pd

# Cargar el archivo Excel y preparar el DataFrame
df_ventana_5 = pd.read_excel('data/Ventana_5.xlsx')
df_resultado = df_ventana_5.groupby('ventana')['agno'].agg(Desde='min', Hasta='max').reset_index()
df_resultado = df_resultado[df_resultado['ventana'] >= 14]

# Convertir 'ventana' en índice para acceder fácilmente a los valores 'Desde' y 'Hasta'
df_resultado.set_index('ventana', inplace=True)

# Ruta del directorio 'assets' (un nivel arriba del directorio actual)
assets_dir = '../assets'

# Listado de los tipos de imágenes
tipos_imagenes = [
    'Red 0.8 ', 'Grado 0.8 ', 'Centralidades 0.8 ', 'Comunidades 0.8 ',
    'TopDegree 0.8 ', 'TopBetweenness 0.8 ', 'TopCloseness 0.8 ', 'Comunidades 0.6 '
]

# Números que van de 14 a 21 (ventanas que queremos graficar)
numeros = range(14, 22)

# Parámetro ajustable para la altura de cada imagen
height_per_image = 15  # Ajusta este valor para cambiar la altura de cada imagen en la figura

for tipo in tipos_imagenes:
    # Configuración del tamaño de la figura en función de la cantidad de imágenes y la altura por imagen
    figsize = (12, height_per_image * len(numeros))  # Ancho fijo, altura variable
    
    # Crear una nueva figura para cada tipo de imagen con el tamaño calculado
    fig, axs = plt.subplots(len(numeros), 1, figsize=figsize)
    fig.suptitle(tipo, fontsize=16)
    
    for i, num in enumerate(numeros):
        # Construir el nombre del archivo de imagen
        image_name = f"{tipo.split()[0]} {num} {tipo.split()[1]}.png"
        image_path = os.path.join(assets_dir, image_name)
        
        # Cargar la imagen y mostrarla en el subplot correspondiente
        img = Image.open(image_path)
        axs[i].imshow(img)
        axs[i].axis('off')
        
        # Obtener los valores 'Desde' y 'Hasta' para la ventana actual
        desde_hasta = f"{df_resultado.at[num, 'Desde']}-{df_resultado.at[num, 'Hasta']}"
        
        # Mostrar el título con 'ventana' y 'Desde-Hasta'
        axs[i].set_title(f"{num} ({desde_hasta})", fontsize=12)
    
    plt.tight_layout()
    plt.show()
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image